/* Copyright (c) 2004-2023 peigen.info. All rights reserved. */

package com.gitee.peigenlpy.actable.example.repository.entity;

import com.alibaba.fastjson2.annotation.JSONField;

import java.io.Serializable;
import java.util.Date;

/**
 * <b>(CreateTimeEntityEnable)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2021/4/25
 */
@SuppressWarnings("unused")
public interface CreateTimeEntityEnable extends Entity, Serializable {

    /**
     * 获取ID
     *
     * @return 返回序列化对象
     */
    Serializable getId();

    /**
     * 获取创建时间
     *
     * @return 创建时间
     */
    Date getCreateTime();

    /**
     * 设置创建时间
     *
     * @param date 创建时间
     */
    void setCreateTime(Date date);

    /**
     * 获取更新时间
     *
     * @return 更新时间
     */
    Date getUpdateTime();

    /**
     * 设置更新时间
     *
     * @param date 更新时间
     */
    void setUpdateTime(Date date);

    /**
     * 返回是否是新的一条记录的结果
     *
     * @return 返回boolean
     */
    @JSONField(serialize = false)
    default boolean isNew() {
        return null == getId();
    }

}